Linux中安装Clash并且实现全局代理(纯命令行) | 您所在的位置:网站首页 › linux 代理设置 › Linux中安装Clash并且实现全局代理(纯命令行) |
目录
Linux中安装Clash并且实现全局代理(纯命令行)场景选择Clash版本下载Clash命令行下载手动下载(适用于使用命令行下载速度慢的用户)
运行Clash解决config.yaml和MMDB问题config.yaml问题MMDB问题
正式启动Clashclash后台运行systemctl常用命令
测试代理是否正常使用全局代理
番外clash的UI控制界面下载UI控制界面文件配置config.yaml文件服务器商打开端口
完结撒花
Linux中安装Clash并且实现全局代理(纯命令行)
场景
我有一台广东的Linux学生服务器,有一些东西需要连接到外网。中间磕磕绊绊总算是成功了,特此记录一下。方便自己也为了方便别人。 本人服务器为腾讯云CentOS 7.x,代理软件为Clash(需自己准备订阅地址) 选择Clash版本https://github.com/Dreamacro/clash/releases 进入上面的地址,会出现很多版本号,选择最新的即可。 接着选择适合你服务器的Clash版本,错误的版本可能会导致无法运行。一般来说选择clash-linux-amd64即可 接着右键选择复制链接 下载Clash此处提供两种方式,以下方式任选其一即可 命令行下载手动下载 命令行下载登录进入Linux,在/usr/local/创建新的目录clash用来存放我们的clash文件,命令为: [root@VM-0-14-centos ~]# mkdir /usr/local/clash移动到此目录 [root@VM-0-14-centos ~]# cd /usr/local/clash [root@VM-0-14-centos clash]#使用命令wget + 刚才复制的地址 [root@VM-0-14-centos clash]# wget https://github.com/Dreamacro/clash/releases/download/v1.13.0/clash-linux-amd64-v1.13.0.gz等待下载完成 手动下载(适用于使用命令行下载速度慢的用户)登录进入Linux,在/usr/local/创建新的目录clash用来存放我们的clash文件,命令为: [root@VM-0-14-centos ~]# mkdir /usr/local/clash移动到此目录 [root@VM-0-14-centos ~]# cd /usr/local/clash [root@VM-0-14-centos clash]#在自己电脑浏览器进入刚才复制的网站,将文件下载下来后使用FTP程序上传到/usr/local/clash/目录 运行Clash下载完成了,接着解压,一定要进入clash目录操作 [root@VM-0-14-centos ~]# cd /usr/local/clash [root@VM-0-14-centos clash]#小技巧:使用tab键可快速填充文件名 [root@VM-0-14-centos clash]# gunzip clash-linux-amd64-v1.13.0.gz注意一下,可能你看这篇教程的时候下载的不是1.13.0版本的clash,所以请注意你自己的文件名字,文件名称错误是无法解压的,文件名字在你下载完成后,是会显示的 2023-02-16 19:39:52 (26.7 KB/s) - ‘clash-linux-amd64-v1.13.0.gz’ saved [3772162/3772162]单引号标注的就是文件名,或者也可以使用命令ls来查看当前目录下面有哪些文件。 接着给予解压出来的文件可执行的权限(774) [root@VM-0-14-centos clash]# chmod +x clash-linux-amd64-v1.13.0小技巧:白色代表其他文件,不可执行;绿色则是可执行的文件;此外还有: 蓝色表示目录;红色表示压缩文件或包文件;浅蓝色表示链接文件。 文件名有点长,改个名字吧,改成程序名字 + 版本号 [root@VM-0-14-centos clash]# mv clash-linux-amd64-v1.13.0 clash-v1.13.0下面开始运行 [root@VM-0-14-centos clash]# ./clash-v1.13.0第一行是运行clash,记得要在文件名前面加上./才行 第二行是clash的提示,说“没有配置文件,已为您创建完成”,但是文件是空的,无法使用 第三行也是,说“没有找到MMDB文件,开始下载”,但是会下载失败 下面我们先开始解决这两个问题 解决config.yaml和MMDB问题 config.yaml问题config.yaml为clash的代理规则和clash的一些其他设置。代理规则不需要我们自己编写,通过订阅地址直接下载即可 此处将订阅链接粘贴进双引号中间。注意不要删除双引号,不要删除空格 wget -O ~/.config/clash/config.yaml "订阅链接"小技巧:~用来代表当前用户的名称,若是使用root登录的,则代表root。所以这个命令实际上就是 wget -O root/.config/clash/config.yaml "订阅链接" 将这个订阅链接下载到指定的文件 至此config.yaml搞定 MMDB问题Country.mmdb为全球IP库,可以实现各个国家的IP信息解析和地理定位,没有这个文件clash是无法运行的。 但目前版本的clash有点问题,不会自动生成MMDB文件,所以需要使用命令行下载 直接在终端运行此代码即可 [root@VM-0-14-centos clash]# wget -O ~/.config/clash/Country.mmdb https://github.com/Dreamacro/maxmind-geoip/releases/latest/download/Country.mmdb至此,MMDB下载完成 正式启动Clash到此,clash就可以正常运行了 由于我的订阅地址有10条规则,所以会有10条Start initial compatible provider xxxx Mixed(http+socks) proxy listening at: 127.0.0.1:7890则代表已经开启了http(含https)和socks代理,只要服务器内有软件流量通过7890这个端口,流量都将进入clash从而被代理。(但有些不支持设置,后面会说如何使用全局代理) RESTful API listening at: [::]:9090代表clash已经开启了ui控制面板,是的,Linux的clash有可视化控制面板。 关闭clash:按下键盘上的Ctrl + C clash后台运行如果按照上面的方法运行clash的话,一旦我们关闭了终端,那么clash也会一并关闭。所以我们需要设置一下后台运行clash 在/etc/systemd/system/目录新建一个clash.service文件,并且直接进入vim编辑器 [root@VM-0-14-centos clash]# vim /etc/systemd/system/clash.service注意,这个就是编辑器,这个编辑器对小白很不友好。请不要乱按按键,请跟着步骤走 先按下键盘上的字母i键,进入编辑模式 当左下角变为INSERT则代表当前是编辑模式 键盘上下左右可以控制光标移动 将以下代码输入进编辑器 [Unit] Description=Clash service After=network.target [Service] Type=simple User=root ExecStart=这里写你的clash运行的绝对路径(本文中的路径是/usr/local/clash/clash-v1.13.0) Restart=on-failure RestartPreventExitStatus=23 [Install] WantedBy=multi-user.target输入完成后按下键盘ESC键 左下角的INSERT会消失,现在则进入了编辑器的底线命令模式 接着是直接输入:wq代表保存并且退出,然后按下回车。 编辑器就会回到原来界面,可以使用cat命令来查看一下内容是否正确 确认内容无误后,就可以开始启动clash服务 [root@VM-0-14-centos clash]# systemctl start clash然后可以查看一下是否正常 [root@VM-0-14-centos clash]# systemctl status clash确保下面的 Active 为 active(running) 即正常。 systemctl常用命令systemctl status clash 查看clash服务 systemctl start clash 启动clash服务 systemctl stop clash 停止clash服务 systemctl restart clash 重启clash服务 systemctl enable clash 设置开机自启clash服务 systemctl daemon-reload 如果修改了clash.service文件,需要此命令来重载被修改的服务文件 测试代理是否正常根据我们之前前台运行可得知,默认是监控了自己的7890端口 那么现在,使用curl来向谷歌发送一个请求看能否正常返回数据 [root@VM-0-14-centos ~]# curl --proxy 127.0.0.1:7890 www.google.comGoogle成功返回数据,代表7890端口代理正常,clash运行正常 使用全局代理设置全局代理需要在/etc/profile文件最后添加几行代码 进入/etc/profile文件 [root@VM-0-14-centos ~]# vim /etc/profile先按下键盘上的字母i键,进入编辑模式 当左下角变为INSERT则代表当前是编辑模式 键盘上下左右可以控制光标移动 将以下代码输入进编辑器 export http_proxy=127.0.0.1:7890 export https_proxy=127.0.0.1:7890除了http和https之外,还可代理其他,可根据下图酌情添加(本人未尝试过) 输入完成后按下键盘ESC键 左下角的INSERT会消失,现在则进入了编辑器的底线命令模式 接着是直接输入:wq代表保存并且退出,然后按下回车。 [root@VM-0-14-centos ~]# vim /etc/profile [root@VM-0-14-centos ~]#cat一下看是否保存 [root@VM-0-14-centos ~]# cat /etc/profile已成功保存。 应用一下profile文件,重启一下clash服务 [root@VM-0-14-centos ~]# source /etc/profile [root@VM-0-14-centos ~]# systemctl restart clash直接curl测试google [root@VM-0-14-centos ~]# curl www.google.com成功返回,全局代理设置成功~ 番外 clash的UI控制界面使用ui控制界面需要设置控制界面的html等文件;设置好访问的IP和端口、设置好密钥、设置好html文件路径 下载UI控制界面文件进入我们的config.yaml所在的文件夹,使用wget命令下载UI文件 [root@VM-0-14-centos ~]# cd ~/.config/clash [root@VM-0-14-centos clash]# wget https://github.com/haishanh/yacd/releases/download/v0.3.7/yacd.tar.xz使用tar命令解压出文件 [root@VM-0-14-centos clash]# tar xvJf yacd.tar.xz解压完成可以看一下,根目录下多出了public文件夹,改个名字,改为ui 配置config.yaml文件依然是使用vim打开clash的config.yaml配置文件 vim编辑器的使用请参见使用全局代理,此处不过多赘述 [root@VM-0-14-centos ~]# vim ~/.config/clash/config.yaml确保你的配置文件有以下三个 external-controller: 0.0.0.0:9090 secret: "123qwe" external-ui: "ui" external-controller代表外部访问地址,此处意思为允许所有人从9090端口访问(当然需要开启9090端口)secret访问密钥,不设置密钥的话任何人都可以访问,较为危险external-uiui文件的路径,由于此处config.yaml文件和ui文件夹在同一目录下,所以只需文件夹名称即可填写完成后,:wq保存 重启一下clash服务,命令为: [root@VM-0-14-centos clash]# systemctl restart clash重启完成,但此时还不能访问UI控制面板,因为端口还未打开 服务器商打开端口 以腾讯云举例,登录腾讯云控制台点击云服务器进入左侧点击安全组,进入 新建一个安全组 全部默认,直接确定 选择新建的安全组,修改规则 入站规则中,添加一个规则 依照图示添加 最后我们再将此安全组的规则应用到服务器 选择运行clash的服务器,点击确定 应用完成后,再自己电脑浏览器打开一下网址: http://你自己服务器ip:9090/ui API Base URL为http://你自己服务器ip:9090Secret(optional)为config.yaml中设置的secret填写后即可登录 访问进来后,在Config里面的Language可以修改中文 在Config里面修改的东西不会保存,只会在本次运行起作用。Clash重启后即会恢复为config.yaml中设置的数据 在代理里面可以看得见不同规则所选择的代理服务器不同,可以根据需要修改 完结撒花 |
CopyRight 2018-2019 实验室设备网 版权所有 |